package main

import "fmt"

func printArray(arr *[5]int) { // 数组   值类型
	arr[0] = 100
	for i, v := range arr {
		fmt.Println(i, v)
	}
}

// cache := make(map[string]string)
// cache["name"] = "ccmouse"
func main() {

	var arr1 [5]int
	arr2 := [3]int{1, 3, 5}
	arr3 := [...]int{2, 4, 6, 8, 10}

	var grid [4][5]int // 4行  5列   4colum 5row

	fmt.Println(arr1, arr2, arr3)
	fmt.Println(grid)

	//一般不这样做
	for i := 0; i < len(arr3); i++ {
		fmt.Println(arr3[i])
	}

	for i, v := range arr3 {
		fmt.Println(i, v)
	}

	for _, v := range arr3 {
		fmt.Println(v)
	}

	//如果只要i
	for i := range arr3 {
		fmt.Println(i) // 这里的i是索引
	}

	fmt.Println("printArray{arr1}")
	printArray(&arr1)
	fmt.Println("printArray{arr3}")
	printArray(&arr3)
	//printArray(arr2)
	fmt.Println("array1 and array3")
	fmt.Println(arr1, arr3)
	// [10]int 和 [20]int是不同类型
	// 调用 func f(arr [10]int) 会 拷贝 数组
	// 在go语言中一般不直接使用数组

}
